package proxyTest;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

/**
 * 经纪人工作
 * 
 * @author zjun
 * @version 1.0 create on 2006-4-11 18:06:36
 */
public class BrokerHandler implements InvocationHandler {

	private String SIGN = "  [经纪人工作]  ";

	// 旗下明星
	private Star star;

	public BrokerHandler(Star star) {
		this.star = star;
	}

	/** */
	/**
	 * 签订和约
	 */
	private void subcontract() {
		System.out.println(SIGN + "  签订和约  ");
	}

	/** */
	/**
	 * 演出后交税
	 */
	private void payTax() {
		System.out.println(SIGN + "  演出后交税  ");
	}

	/** */
	/**
	 * @see java.lang.reflect.InvocationHandler#invoke(java.lang.Object,
	 *      java.lang.reflect.Method, java.lang.Object)
	 */
	public Object invoke(Object proxy, Method method, Object[] args)
			throws Throwable {
		Object obj = null;
		// 签约
		subcontract();
		// 安排艺人演出
		obj = method.invoke(star, args);
		// 交税
		payTax();
		return obj;
	}
}
